The present invention relates generally to graphics processors and more particularly to fast context switching that reduces the loss of in-progress processing work.
Computer applications or programs running on a computing platform typically generate images for display on a monitor. The images may be a program output, for example a scene from a video game, they may provide an input to a program, or they may be some combination of these, such a document created using a word processing application.
These images appear in a window on the monitor. The window may be larger, smaller, or the same size as the display monitor. Commonly, users have several windows open simultaneously, some or all of which may be at least partially visible at any given time. Each of these windows may also be referred to as a context.
Each application or program can include drivers, modules, and other software routines. Also, they may utilize other software that may be available on the computing platform. A graphics processor uses these tools to generate individual pixels of an image that appears on the monitor. When multiple windows or contexts are open, the graphics processor may work on generating pixels for a first window or context, then it may switch to generating pixels for a second window or context. This is referred to as a context switch.
It is desirable to be able to switch from one context to another quickly. When a graphics processing circuit is instructed or otherwise determines that a context switch should occur, delay in performing the switch reduces graphics system performance. In particular, 3-D images may be degraded. However, switching from one context to another too quickly can waste processing power by deleting or otherwise not using processing work that is in progress.
Thus, it is desirable to be able to perform a context switch quickly while not wasting a significant amount of in-progress work.